#ifndef _GRAPHICS_COPY_RENDERER_H
#define _GRAPHICS_COPY_RENDERER_H


namespace Graphics
{

	class CopyRenderer : public Ogre::RenderQueueListener
	{
		Ogre::uint8 queue_id;
		Ogre::RenderWindow *mRenderWindow;
		Ogre::RenderOperation mRenderOp;
		Ogre::HardwareVertexBufferSharedPtr mVBuffer;
		
		Ogre::RenderTexture *mRenderTex;

		void fillRenderBuffer();
		void renderScreen();

		void initRenderStates();
	public:

		virtual void	renderQueueStarted(Ogre::uint8 id, const Ogre::String& invocation, bool& skipThisQueue);
		virtual void	renderQueueEnded(Ogre::uint8 id, const Ogre::String& invocation, bool& repeatThisQueue);
		void prepRenderBuffer();
		void destroyRenderBuffer();
		CopyRenderer(Ogre::RenderWindow *window, Ogre::uint8 id = Ogre::RENDER_QUEUE_OVERLAY);
		~CopyRenderer(void);
	}; // class CopyRenderer

}; // namespace Graphics
#endif